package cn.zebra.dev.shop.module.collect.service;

import cn.zebra.dev.ibatis.plus.service.IService;
import cn.zebra.dev.ibatis.plus.utils.PageUtils;
import cn.zebra.dev.shop.module.collect.entity.MemberShopCollectEntity;

import java.util.Map;

/**
 * @author runnable@sina.cn
 */
public interface MemberShopCollectService extends IService<MemberShopCollectEntity> {
    /**
     * 保存店铺收藏
     *
     * @param memberId 用户id
     * @param shopId   店铺id
     * @return 保存成功返回True 保存失败返回False
     */
    Boolean saveCollect(Long memberId, Long shopId);

    /**
     * 根据用户id和商品id查询用户店铺收藏
     *
     * @param memberId 用户id
     * @param shopId   店铺id
     * @return 用户店铺收藏对象
     */
    MemberShopCollectEntity findByMemberIdAndProductId(Long memberId, Long shopId);

    /**
     * 根据主键id和用户id逻辑删除用户店铺收藏
     *
     * @param id       主键id
     * @param memberId 用户id
     * @return 逻辑删除成功返回True 逻辑删除失败返回False
     */
    Boolean deleteByIdAndMemberId(Long id, Long memberId);

    /**
     * 根据查询参数查询分页用户店铺收藏信息
     *
     * @param params - key(查询参数)
     *               memberId   用户id
     *               shopId     店铺id
     *               deleteFlag 是否删除
     * @return 用户商品收藏分页信息
     */
    PageUtils<MemberShopCollectEntity> findPage(Map<String, Object> params);
}
